// 商品详情模块
import request from '@/utils/request'
import axios from 'axios'
import { cityUrl, mockUrl } from '@/utils/config.js'

// 获取商品的详细数据：参数id表示商品的id
export const findGoods = (id) => {
  return request({
    method: 'get',
    url: '/goods',
    data: { id }
  })
}

// 获取城市列表数据
export const getCityList = async () => {
  // 如果换成中已经有数据，就不再需要调用接口
  if (window.cityList) {
    return window.cityList
  }
  // 第一次获取数据需要调用接口
  const ret = await axios.get(cityUrl)
  if (ret.data) {
    // 添加到缓存中
    window.cityList = ret.data
  }
  return ret.data
}

// 获取商品详情页面同类商品的数据
// id表示商品的id
// limit表示每页查询多少条数据
export const findRelGoods = (id, limit = 16) => {
  return request({
    method: 'get',
    url: '/goods/relevant',
    data: { id, limit }
  })
}

// 获取热销榜的商品数据
// id表示商品的id
// type表示热销类型
// limit表示每页的条数
export const findHotGoods = ({ id, type, limit = 3 }) => {
  return request({
    method: 'get',
    url: '/goods/hot',
    data: { id, type, limit }
  })
}

// 获取商品的评论的统计数据
export const findCommentInfoByGoods = (id) => {
  // return request({method: 'get',url: '`/goods/${id}/evaluate`'})
  return request({
    method: 'get',
    // 当请求地址是http或者是https等标准协议时，那么axios基准路径不会再次拼接
    // 评论数据没有正式的接口，如下的地址是模拟的假数据
    url: `${mockUrl}goods/${id}/evaluate`
  })
}

// 获取评论列表数据
export const findCommentListByGoods = (id, data) => {
  return request({
    method: 'get',
    url: `${mockUrl}goods/${id}/evaluate/page`,
    data
  })
}
